package com.yh.correct.service;
/**
 * 对象监控业务接口
 */

import java.awt.geom.Point2D;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.yh.correct.model.CorrectedPerson;
import com.yh.correct.model.Crawl;
import com.yh.correct.model.JudicialDeptment;
import com.yh.correct.model.LeavePersonnel;
import com.yh.correct.model.Page;
import com.yh.correct.model.RuleBreak;
import com.yh.correct.model.UserMap;

public interface IUserMapService {
	/**
	 * 增加对象相应信息
	 */
	public int addUserMap(UserMap map) throws Exception;
	/**
	 * 为对象添加范围信息
	 */
	public int addMap(Crawl arawl) throws Exception;
	/**
	 * 查看对象范围信息
	 */
	public List<Crawl> getAll(CorrectedPerson person) throws Exception;

	/**
	 * 删除对象相应信息
	 */
	public int delUserMap(Integer id) throws Exception;

	/**
	 * 修改对象定位信息
	 */
	public int editUserMap(UserMap map) throws Exception;
	/**
	 * 根据对象信息得到最后定位
	 */
	public UserMap getUserss(CorrectedPerson person) throws Exception;
	/**
	 * 查看对象信息
	 */
	public List<UserMap> getAlls() throws Exception;

	/**
	 * 根据对象信息得到定位
	 */
	public UserMap getUser(CorrectedPerson person) throws Exception;

	/**
	 * 根据对象信息和时间段得到对象的轨迹和相应的对象信息
	 * 
	 */
	public List<UserMap> getUsers(Map map) throws Exception;

	/**
	 * 根据对象信息查看对象违规信息
	 * 
	 */
	public List<Object> getRuleBreak(CorrectedPerson person) throws Exception;

	/**
	 * 根据对象信息查看对象请假信息
	 * 
	 */
	public List<Object> getLeavePersonnel(CorrectedPerson person) throws Exception;

	/**
	 * 根据对象信息查看对象位置信息
	 * 
	 */
	public List<Object> getLocation(CorrectedPerson person) throws Exception;
	/**
	 * 根据对象信息查看对象短信信息
	 * 
	 */
	public List<Object> getMessage(CorrectedPerson person) throws Exception;
	/**
	 * 根据所有对象信息
	 * 
	 */
	public List<CorrectedPerson> getAllUser() throws Exception;
	/**
	 * 查看司法信息
	 * 
	 */
	public List<JudicialDeptment> getJudicialDeptment() throws Exception;

	/**
	 * 根据司法信息查看对象
	 * 
	 */
	public List<CorrectedPerson> getJudicialDeptments(JudicialDeptment judicialDeptment) throws Exception;

	/**
	 * 模糊查询对象记录
	 * 
	 * @param change
	 * @return
	 */
	Page queryLike(Map<String, Object> condition) throws Exception;
	/**
	 * 模糊查询电子围墙信息
	 * 
	 * @param condition
	 * @return
	 */
	Page getLikeWall(Map<String,Object> condition) throws Exception;
	/**
	 * 查询所有电子围墙信息
	 * 
	 * @return
	 */
	List<Map<String,Object>> getAllWalls() throws Exception;
	/**
	 * 范围判断
	 * @param point
	 * @param pts
	 * @return
	 */
	 boolean IsPtInPoly(Point2D.Double point, List<Point2D.Double> pts);
	
}
